import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager


@pytest.fixture( scope="function" )
def setup():
    print( "测试开始前执行" )
    yield
    print( "测试结束后执行" )


@pytest.fixture( scope="function" )
def setupui():
    # 测试前：打开浏览器并访问特定页面
    print( "\n启动浏览器..." )
    options = webdriver.ChromeOptions()
    options.add_argument( "--headless" )  # 无头模式，不显示浏览器窗口
    options.add_argument( "--disable-gpu" )  # 禁用 GPU 加速
    options.add_argument( "--no-sandbox" )  # 禁用沙盒模式
    options.add_argument( "--disable-dev-shm-usage" )  # 解决资源限制问题

    # 使用 webdriver_manager 自动管理 ChromeDriver
    # driver = webdriver.Firefox( service=Service( ChromeDriverManager().install() ), options=options )
    # 不好用，加载不出来
    service = Service( r'C:\Users\JW\PycharmProjects\chromedriver.exe' )
    driver = webdriver.Chrome( service=service, options=options )

    # driver.maximize_window()  # 最大化窗口

    # 访问特定页面
    driver.get( "http://127.0.0.1:5000/" )  # 替换为你的目标页面
    time.sleep( 1 )

    yield driver  # 将 driver 对象传递给测试函数

    # 测试后：关闭浏览器
    print( "\n关闭浏览器..." )
    driver.quit()